---
category: Function
contributors:
    - Kikobeats
created: '2020-05-16'
title: Memoize a function
updated: '2021-10-06'
---

**JavaScript version**

```js memoize.js
const memoize = (fn) =>
    (
        (cache = Object.create(null)) =>
        (arg) =>
            cache[arg] || (cache[arg] = fn(arg))
    )();
```

**Examples**

```js examples.js
// Calculate Fibonacci numbers
const fibo = memoize((n) => (n <= 2 ? 1 : fibo(n - 1) + fibo(n - 2)));

fibo(1); // 1
fibo(2); // 1
fibo(3); // 2
fibo(4); // 3
fibo(5); // 5
fibo(6); // 8
```
